Small improvement to GtkLinkButton a11y
authorMatthias Clasen <mclasen@redhat.com>
Sun, 22 Sep 2013 00:29:09 +0000 (20:29 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 22 Sep 2013 00:51:21 +0000 (20:51 -0400)
ATK has a visited state, so propagate the visited property
of GtkLinkButton to that state.

gtk/a11y/gtklinkbuttonaccessible.c
testsuite/a11y/link.txt
testsuite/a11y/link.ui

index 19ffe55494e6baf76f16f1bf15879922317fd6ba..bac91cf7f847b4c483a95c9ffb0f4a1ac64d4dcc 100644 (file)
@@ -218,10 +218,29 @@ gtk_link_button_accessible_finalize (GObject *object)
   G_OBJECT_CLASS (gtk_link_button_accessible_parent_class)->finalize (object);
 }
 
+static AtkStateSet *
+gtk_link_button_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+
+  state_set = ATK_OBJECT_CLASS (gtk_link_button_accessible_parent_class)->ref_state_set (accessible);
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget != NULL)
+    {
+      if (gtk_link_button_get_visited (GTK_LINK_BUTTON (widget)))
+        atk_state_set_add_state (state_set, ATK_STATE_VISITED);
+    }
+
+  return state_set;
+}
+
 static void
 gtk_link_button_accessible_class_init (GtkLinkButtonAccessibleClass *klass)
 {
   G_OBJECT_CLASS (klass)->finalize = gtk_link_button_accessible_finalize;
+  ATK_OBJECT_CLASS (klass)->ref_state_set = gtk_link_button_ref_state_set;
 }
 
 static void
index c560183234be2952471f071345f9cdfdabb9f21e..e94e9c3eb1db0b1a02469ba8ce14ca237fecae85 100644 (file)
@@ -11,7 +11,7 @@ window1
     parent: window1
     index: 0
     name: Hello World!
-    state: enabled focusable sensitive showing visible
+    state: enabled focusable sensitive showing visible visited
     toolkit: gtk
     <AtkComponent>
     layer: widget
index d8cff2707a86e66ebe11a1cad0f6d2a49bf5114a..2777a6929c4b11581a719a6d9567bc8476b5cf01 100644 (file)
@@ -10,6 +10,7 @@
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <property name="uri">http://www.gtk.org</property>
+        <property name="visited">True</property>
       </object>
     </child>
   </object>